README

GSM AI 해커톤 - 실습 코드 템플릿 및 단계별 검증 가이드

이 패키지는 광주소프트웨어마이스터고등학교(GSM) AI 해커톤 교육 과정의 실습 코드 세트입니다.
AWS EC2 인프라 설정부터 S3 연동, 로컬 벡터 DB(FAISS) 구축, Amazon Bedrock(Claude 5) 호출 및 Streamlit 실시간 웹 챗봇 최종 배포까지 모든 단계의 코드와 검증 명령어를 제공합니다.


파일 목록 및 역할

  1. requirements.txt: 실습에 필요한 파이썬 라이브러리 목록 및 고정 버전
  2. bedrock_simple_test.py: EC2의 IAM 인스턴스 프로파일 권한 및 Bedrock Claude 5 연동을 점검하는 기초 파일
  3. bedrock_faiss_indexer.py: S3 버킷에서 문서를 다운로드하여 잘게 쪼갠 후 로컬 벡터 데이터베이스(FAISS)로 저장하는 인덱서 파일 (Day 2)
  4. bedrock_faiss_rag_chatbot.py: 로컬 벡터 DB에서 고속 의미 검색을 수행한 뒤 Claude 5와 연동해 답변하는 CLI 챗봇 파일 (Day 2)
  5. app.py: 최종 결과물인 Streamlit 웹 기반 실시간 스트리밍 답변 RAG 챗봇 어플리케이션 (Day 3)

단계별 실행 및 접속 검증 명령어 가이드

아래 단계들은 우분투 EC2 인스턴스에 접속한 후 순서대로 실행하며 테스트를 검증하는 용도입니다.

[Step 1] 시스템 패키지 및 AWS CLI 설치 검증

우분투 서버 내에 AWS CLI가 올바르게 설치되었는지 검증합니다.


[Step 2] EC2 IAM 인스턴스 프로파일(Role) 권한 검증

EC2가 비밀키 입력 없이 올바른 IAM 역할을 할당받았는지 확인합니다.


[Step 3] S3 버킷 연동 및 권한 검증

EC2에서 S3 버킷의 파일 목록을 조회하거나 업로드가 정상적으로 가능한지 확인합니다.


[Step 4] 파이썬 실습 패키지 전역 설치

파이썬 패키지를 서버 전역 환경에 안전하게 강제 설치합니다.


[Step 5] Bedrock Claude 5 API 연동 검증

가장 기초적인 Bedrock API 다이렉트 호출 테스트를 수행합니다.


[Step 6] 로컬 벡터 DB(FAISS) 빌드 및 검증

S3 문서 다운로드 및 쪼개기(Chunking) 후 로컬 벡터 데이터베이스가 생성되는지 검증합니다.


[Step 7] 로컬 RAG CLI 챗봇 구동 및 환각 방어 검증

로컬 DB를 검색하여 답변하는 터미널 챗봇을 실행하고, RAG가 올바르게 작동하는지 퀴즈를 냅니다.


[Step 8] Streamlit 웹 RAG 애플리케이션 가동 및 포트 검증

Day 3의 최종 결과물인 웹 화면 UI 상에 RAG 챗봇 및 S3 문서 업로드 포털 서비스를 띄웁니다.


[Step 9] Streamlit 백그라운드 상시 구동 및 관리 (SSH 종료 후 유지)

SSH 터미널 세션을 종료하더라도 웹 서버가 계속 가동되도록 백그라운드로 실행하는 방법입니다.

방법 A: nohup 사용 (추천 - 단일 명령어로 간편함)

방법 B: screen 사용 (리눅스 가상 스크린 터미널)